import Vue from 'vue'
import App from './App.vue'
import router from './router'

//1.引入vant ui 全部全局组件
import Vant, { Toast } from 'vant'
//2.引入组件组件 css 组件
import 'vant/lib/index.css'
// 3. 注册 vant ui 组件库的标签
Vue.use(Vant)

// 引入axios组件
import axios from "axios";

//基准路径
// 备用
axios.defaults.baseURL = 'http://liangwei.tech:3000';
// axios.defaults.baseURL = 'http://157.122.54.189:9083';

//添加验证token到请求头拦截器中
axios.interceptors.request.use(config => {
  // console.log(config);
  //1.如果用户访问时没有带上token
  //2.而且本地存储有保存token的话，加上token
  if (!config.headers.Authorization && localStorage.getItem('token')) {
    config.headers.Authorization = localStorage.getItem('token');
  }
  return config;
})

//添加拦截器，无论哪个页面发请求，响应都应该到这里
axios.interceptors.response.use(res => {
  // console.log('路过拦截器, 直接将数据返回');
  // console.log(res);
  //三个页面的请求失败code都是400，401
  const errCodePattern = /^4\d{2}$/
  if (errCodePattern.test(res.data.statusCode)) {
    Toast.fail(res.data.message || '系统错误')
  }
  if (res.data.message == '用户信息验证失败') {
    localStorage.clear();
    router.replace("/login");
  }
  return res;
})

// 绑定到原型
Vue.prototype.$axios = axios;

Vue.filter('fixImgUrl', (oldUrl) => {
  if (oldUrl.indexOf("http") > -1) {
    return oldUrl;
  } else {
    return axios.defaults.baseURL + oldUrl;
  }
})

Vue.config.productionTip = false

new Vue({
  router,
  render: function (h) { return h(App) }
}).$mount('#app')
